// API配置文件
// 统一管理所有API接口地址

/**
 * 环境类型
 */
type Environment = 'development' | 'production';

/**
 * 环境配置
 * 修改 currentEnv 来切换环境
 */
const config = {
  // 当前环境（修改这里来切换环境）
  currentEnv: 'production' as Environment,

  // 不同环境的基础路径配置
  basePaths: {
    development: 'http://192.168.71.236:7860',  // 开发环境
    production: 'https://germmy2025-myfirstpythoncontroller.hf.space'  // 生产环境（请替换为实际域名）
  }
};

/**
 * API配置类
 * 用于管理不同环境下的API基础路径和接口地址
 */
const ApiConfig = {
  /**
   * 获取当前环境
   */
  getEnvironment(): Environment {
    return config.currentEnv;
  },

  /**
   * 设置当前环境
   * @param env 环境类型
   */
  setEnvironment(env: Environment): void {
    config.currentEnv = env;
    console.log(`API环境已切换为: ${env}`);
  },

  /**
   * 获取当前环境的基础路径
   */
  getBasePath(): string {
    return config.basePaths[config.currentEnv];
  },

  /**
   * 设置指定环境的基础路径
   * @param env 环境类型
   * @param path 基础路径
   */
  setBasePath(env: Environment, path: string): void {
    config.basePaths[env] = path;
    console.log(`${env}环境的基础路径已更新为: ${path}`);
  },

  /**
   * 获取文件上传接口URL
   */
  getUploadUrl(): string {
    return `${this.getBasePath()}/upload`;
  },

  /**
   * 获取文件下载接口URL
   * @param fileId 文件ID
   */
  getDownloadUrl(fileId: string): string {
    return `${this.getBasePath()}/download/${fileId}`;
  },

  /**
   * 获取完整的API URL
   * @param path API路径（以/开头）
   */
  getApiUrl(path: string): string {
    const basePath = this.getBasePath();
    const normalizedPath = path.startsWith('/') ? path : `/${path}`;
    return `${basePath}${normalizedPath}`;
  }
};

export default ApiConfig;

